home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso / 1257 / depot.cp_ / depot.cp
Text File  |  1997-04-18  |  4KB  |  155 lines

  1. /* EasyCODE(C++) V5.1 01.03.1995 08:02:39
  2. Library Management: Stack-Room Lending */
  3. /* EasyCODE O
  4. If=horizontal
  5. LevelNumbers=no
  6. LineNumbers=no
  7. ScreenFont=Arial,,100,9220,-13,0,400,0,0,0,0,0,0,3,2,1,34
  8. PrinterFont=Courier,,100,2,-42,0,400,0,0,0,0,0,0,2,1,2,49
  9. LastLevelId=7 */
  10.  
  11. /* EasyCODE ( 1
  12.    Stack-Room Lending */
  13. #include "libdat.h"
  14. #include <time.h>
  15. /* EasyCODE - */
  16. extern int ClpBrdUsrNo;
  17. extern BOOL ClpBrdUsrLock;
  18. extern int iBookLimit;
  19. extern int iFilUsr;
  20. extern int iMaxLoan;
  21. extern user_item user[];
  22. extern loan_item loan[];
  23. /* EasyCODE - */
  24. void ReadBookData(int&, char *);
  25. BOOL BookBorrowed(int);
  26. void WriteLendingForm(void);
  27. void WriteLendingFile(int, char *);
  28.  
  29. /* EasyCODE ( 3
  30.    Stacks */
  31.  
  32. /* EasyCODE F */
  33. void Stacks(void)
  34.    {
  35.    int CallNumber;
  36.    char Author[BUFFER_SIZE];
  37.    if (!ClpBrdUsrLock)
  38.       {
  39.       ReadBookData(CallNumber, Author);
  40.       while ((user[iFilUsr].NumBooks < iBookLimit) &&
  41.              (CallNumber != 0))
  42.          {
  43.          if (!BookBorrowed(CallNumber))
  44.             {
  45.             WriteLendingFile(CallNumber, Author);
  46.             /* EasyCODE - */
  47.             WriteLendingForm();
  48.             /* EasyCODE - */
  49.             user[iFilUsr].NumBooks+=1;
  50.             }
  51.          else
  52.             {
  53.             cout << "Book on loan" << endl;
  54.             cin;
  55.             /* EasyCODE - */
  56.             // Handle waiting list entry
  57.             }
  58.          if (user[iFilUsr].NumBooks == iBookLimit)
  59.             {
  60.             cout << "Book limit reached" << endl;
  61.             cin;
  62.             }
  63.          else
  64.             {
  65.             ReadBookData(CallNumber, Author);
  66.             }
  67.          }
  68.       }
  69.    }
  70. /* EasyCODE ) */
  71.  
  72. /* EasyCODE ( 4
  73.    ReadBookData */
  74.  
  75. /* EasyCODE F */
  76. void ReadBookData(int& CallNumber, char *Author)
  77.    {
  78.    if (user[iFilUsr].NumBooks < iBookLimit)
  79.       {
  80.       cout << "\nCall number: ";
  81.       cin >> CallNumber;
  82.       cout << "Author: ";
  83.       cin >> Author;
  84.       }
  85.    else
  86.       {
  87.       cout << "User borrowed maximum number of books !";
  88.       cin;
  89.       }
  90.    }
  91. /* EasyCODE ) */
  92.  
  93. /* EasyCODE ( 5
  94.    BookBorrowed */
  95.  
  96. /* EasyCODE F */
  97. BOOL BookBorrowed(int CallNumber)
  98.    {
  99.    BOOL bFound = FALSE;
  100.    for (int i = 0; (i < iMaxLoan) && !bFound; i++)
  101.       {
  102.       if (loan[i].CallNo == CallNumber)
  103.          {
  104.          bFound = TRUE;
  105.          }
  106.       }
  107. /* EasyCODE < */
  108.    return(bFound);
  109. /* EasyCODE > */
  110.    }
  111. /* EasyCODE ) */
  112.  
  113. /* EasyCODE ( 6
  114.    WriteLendingForm */
  115.  
  116. /* EasyCODE F */
  117. void WriteLendingForm(void)
  118.    {
  119.    cout << "\n\n\n\nRequest book from stacks !";
  120.    cout << "\n\n\n\n LENDING FORM: ";
  121.    cout << "\n\nCall number:     " << loan[iMaxLoan-1].CallNo;
  122.    cout << "\nUser number:       " << loan[iMaxLoan-1].UserNo;
  123.    cout << "\nDate of borrowing: " << loan[iMaxLoan-1].LendingDate;
  124.    cout << "\nDate of return:    " << loan[iMaxLoan-1].Return;
  125.    cout << "\nAuthors:           " << loan[iMaxLoan-1].Author1 << endl;
  126.    
  127.    cin;
  128.    }
  129. /* EasyCODE ) */
  130.  
  131. /* EasyCODE ( 7
  132.    WriteLendingFile */
  133.  
  134. /* EasyCODE F */
  135. void WriteLendingFile(int CallNumber, char *Author)
  136.    {
  137.    time_t lLendingDate;
  138.    time_t lReturnDate;
  139.    /* EasyCODE - */
  140.    time(&lLendingDate);
  141.    
  142.    // 4 weeks --> 2419200 seconds
  143.    lReturnDate = lLendingDate + 2419200;
  144.    /* EasyCODE - */
  145.    iMaxLoan++;
  146.    
  147.    loan[iMaxLoan-1].CallNo = CallNumber;
  148.    loan[iMaxLoan-1].UserNo = ClpBrdUsrNo;
  149.    strcpy (loan[iMaxLoan-1].LendingDate, ctime(&lLendingDate));
  150.    strcpy (loan[iMaxLoan-1].Return, ctime(&lReturnDate));
  151.    strcpy (loan[iMaxLoan-1].Author1, Author);
  152.    }
  153. /* EasyCODE ) */
  154. /* EasyCODE ) */
  155.